package com.zhang.zxx.easyexcel;

import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.zhang.zxx.easyexcel.pojo.ExcelModel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.test.context.SpringBootTest;
import org.testng.annotations.Test;

import java.util.concurrent.atomic.AtomicInteger;

/**
 * DBExcel:
 *
 * @author zhangxiaoxiang
 * @date 2021/06/25
 */
@SpringBootTest
@Slf4j
public class DBExcel {
    public final String dbFileName = "src/main/resources/dbFile/";
    @Test
    public void method1() {
        AtomicInteger integer = new AtomicInteger();
        //路径
        String fileName=dbFileName+"sql.xls";
        Class<ExcelModel> excelModelClass = ExcelModel.class;
        EasyExcel.read(fileName, excelModelClass, new AnalysisEventListener<ExcelModel>() {

            /**
             * 解析每一条数据的时候被调用
             */
            @Override
            public void invoke(ExcelModel data, AnalysisContext context) {
                //在这里操作，将解析的每一条数据保存到数据库中,在这里可以调用数据库
                // JSONObject jsonObject = JSON.parseObject(data.toString(),se);
                // System.out.println("\n解析的数据为: "+jsonObject);
                JSONObject jsonObject = JSONUtil.parseObj(data, true);
                log.info("解析的数据为: "+jsonObject);
                integer.getAndIncrement();
            }

            /**
             * 解析完所有数据的时候被调用
             */
            @Override
            public void doAfterAllAnalysed(AnalysisContext context) {
                log.info("解析"+ context.readSheetHolder().getSheetName()+"完成"+"数量:"+integer.intValue());
            }
        }).sheet().doRead();
        log.info("解析模拟的DB数据完成=====>,sql路径{}",fileName);
    }

}
